An Abstract, Approximation-Based Approach to Embedded Code Pointers and Partial-Correctness
نویسنده
چکیده
To support higher-order type-like features such as embedded code pointers, in logic-based verification, one approach is to build assertion logic that combines logic and types. But it is not totally satisfactory in various aspects. Another approach is to use approximation in logic to simulate the behavior of types and typing invariants, yet polluting program specifications and proofs with complex approximation details. Additionally, existing approximation-based work have only supported embedded code pointers without partial-correctness guarantee. We propose a new abstract, approximation-based approach to support embedded code pointers in logic-based verification. Our specification language and inference rules are independent of approximation, thus allowing programs to be certified abstractly. Approximation is only used to establish soundness and partial-correctness. We can easily support dynamic code generation. The central idea should be applicable to other higher-order features. Our work is presented on and mechanized in, but not limited to, assembly languages and Coq proof-assistant.
منابع مشابه
Compiler verification meets cross-language linking via data abstraction Citation
Many real programs are written in multiple different programming languages, and supporting this pattern creates challenges for formal compiler verification. We describe our Coq verification of a compiler for a high-level language, such that the compiler correctness theorem allows us to derive partial-correctness Hoare-logic theorems for programs built by linking the assembly code output by our ...
متن کاملVerification of sequential imperative programs in Isabelle-HOL
Thepurpose of this thesis is to create a verification environment for sequential imperative programs. First a general language model is proposed, which is independent of a concrete programming language but expressive enough to cover all common language features: mutually recursive procedures, abrupt termination and exceptions, runtime faults, local and global variables, pointers and heap, expre...
متن کاملCode Generation and Model Driven Development for Constrained Embedded Software
We consider statechart models of discrete control embedded programs operating under severe memory constraints. There have been very few results in code generation for such systems. We analyze code generation methods for embededded processors utilizing C as an intermediate language and runtime interpreters. We choose a suitable subset of hierarchical statecharts and engineer an efficient interpr...
متن کاملCorrectness Proofs for Device Drivers in Embedded Systems
Computer systems do not exist in isolation: they must interact with the world through I/O devices. Our work, which focuses on constrained embedded systems, provides a framework for verifying device driver software at the machine code level. We created an abstract device model that can be plugged into an existing formal semantics for an instruction set architecture. We have instantiated the abst...
متن کاملA Theory of Termination via Indirection
Step-indexed models provide approximations to a class of domain equations and can prove type safety, partial correctness, and program equivalence; however, a common misconception is that they are inapplicable to liveness problems. We disprove this by applying step-indexing to develop the first Hoare logic of total correctness for a language with function pointers and semantic assertions. In fac...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008